// 页面中类型定义
//返回类型
export interface ResData<T> {
  code: number
  message: string
  data: T
}

export interface Pagination {
  currentPage: number
  pageSize: number
  total: number
}

/**
 * 数据接口，用于返回数据
 * 注意：与后端API交互时，应使用此接口，避免与Record接口冲突
 */
export interface Records {
  id?: string
  username: string
  nickName: string
  roles?: string[]
  avatar?: string
  password?: string
  status: 'ACTIVE' | 'INACTIVE'
  organization?: string
  post?: string
  sort?: number
  createdAt?: string
  updatedAt?: string
}

/**
 * 表单数据接口，用于增加、修改数据
 */
export type FormData = Partial<Records>

// pagelist 接口
export interface PageList {
  records: Records[]
  searchCount: boolean
  size: number
  total: number
  current: number
}

export type ResPageList = ResData<PageList>

/** 角色项 */
export interface RoleItem {
  id: string
  name: string
  description?: string | null
  createdAt?: string
  updatedAt?: string
}

/** 分配角色接口返回的数据体 */
export interface AssignRoleData {
  allRolesList: RoleItem[]
  assignRoles: RoleItem[]
}

export type ResAssignRoleData = ResData<AssignRoleData>

// 定义搜索参数类型，避免与 Record 接口命名冲突
export type SearchParams = { [key: string]: unknown }
